How to change corrplot() color limits and color scale

Created
TagsCorrelationR

Allow me to walk you through the process of generating this corrplot() with custom color limits and color pallete:

I was working on making a correlation plot to show that the RNA-seq profiles of different cells types within an experiment are similar. So I naturally used the corrplot() function in R with the correlation matrix of the RNA-seq values. They were all positively correlated so it it was a little hard to see the differences in correlation , R, when visualized. Here is the code:

# extracting the RNA seq values from the Variance stabilized counts from DESeq2
mat = VarianceStabilizedCounts[, 3:ncol(VarianceStabilizedCounts)]

# calculcating the correlation matrix 
cor.mat = cor(mat, method = "spearman")

# creating the correlation matrix
corrplot(cor.mat,
         type = "upper",
         t1.col = "white",
         title = "\n\n\n",
         is.corr = TRUE,
         order = "hclust",
         diag = TRUE)

As you can see the entire bottom half of the scale is not used because all values are roughly above 0.3. So I started playing around with the corrplot() parameters to see if I could change the scale from (-1,1) to (0.3, 1)

corrplot(cor.mat,
         type = "upper",
         t1.col = "white",
         title = "\n\n\n",
         is.corr = TRUE,
         order = "hclust",
         col.lim = c(0.3,1),  ##added this line
         diag = TRUE)

While this did change the color scale values, the colors did not change as I expected. After much googling, I came across this post . (Note: in cl.lim referred to in this post is col.lim in the version of corrplot() I used).

corrplot(cor.mat,
         type = "upper",
         t1.col = "white",
         title = "\n\n\n",
         is.corr = FALSE, ## changed this line
         order = "hclust",
         col.lim = c(0.3,1), 
         diag = TRUE)

And this helped to actually "squish" the color scale to match the color limits!

I changed a couple other parameters to add the correlation coefficient and change the color scale

corrplot(cor.mat,
         type = "upper",
         title = "\n\n\n",
         is.corr = FALSE,
         order = "hclust",
         col.lim = c(0.3,1), 
         col = colorRampPalette(c("white", "deepskyblue", "blue4"))(100),
         addCoef.col = TRUE,
         method = "shade",
         tl.col = "black",
         diag = TRUE)